package ltd.newbee.mall.service;

import ltd.newbee.mall.entity.GoodsSpecAttr;
import ltd.newbee.mall.entity.GoodsSpecValue;

import java.util.List;
import java.util.Map;

public interface GoodsSpecService {

    // 属性相关方法
    List<GoodsSpecAttr> getAttrsByGoodsId(Long goodsId);

    boolean saveAttr(GoodsSpecAttr attr);

    boolean deleteAttr(Integer id);

    // 属性值相关方法
    List<GoodsSpecValue> getValuesByAttrId(Long attrId);

    List<GoodsSpecValue> getValuesByGoodsId(Long goodsId);

    boolean saveValue(GoodsSpecValue value);

    boolean deleteValue(Integer id);

    // 批量操作
    boolean batchSaveAttrs(List<GoodsSpecAttr> attrs);

    boolean batchSaveValues(List<GoodsSpecValue> values);

    // 完整规格信息
    Map<GoodsSpecAttr, List<GoodsSpecValue>> getFullSpecByGoodsId(Long goodsId);

    boolean deleteAllByGoodsId(Long goodsId);

    boolean copySpecToGoods(Long sourceGoodsId, Long targetGoodsId);
}